package clases

class Reserva(diaR: Int, horaInicioR: Int, horaFinR: Int, clienteR: Cliente) {
  var dia: Int = diaR;
  var horaInicio: Int = horaInicioR;
  var horaFin: Int = horaFinR;
  var cliente: Cliente = clienteR;
  var calendario = new Calendario
  
  //tomé como referencia el mes de marzo, estos son los dias del fin de semana
  //tendria que ir en recepcion esto
  
  def esDeNoche = horaInicio < 9 || horaFin > 18
  
  def checkearDinero(monto: Double) = cliente.puedePagar(monto)
  
  def cobrar(monto:Double) {
      cliente.intentarCobrar(monto)
  }
  
  def duracion = horaFin - horaInicio
  
  def noEstaOcupadaDurante(reserva: Reserva) = {
    !((estaOcupadaDesde(reserva.horaInicio) || estaOcupadaHasta(reserva.horaFin)))
  }

  def estaOcupadaHasta(hora: Int): Boolean = {
    (hora > horaInicio && hora <= horaFin)
  }
  def estaOcupadaDesde(hora: Int): Boolean = {
    (hora >= horaInicio && hora < horaFin)
  }
  def esFinDeSemana() = {
    calendario.finDeSemana.exists(_ == dia)
  }

}